//package com.qys.livesMall.kafka.config;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.context.annotation.PropertySource;
//import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
//import org.springframework.kafka.config.KafkaListenerContainerFactory;
//import org.springframework.kafka.core.ConsumerFactory;
//import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
//import org.springframework.kafka.core.DefaultKafkaProducerFactory;
//import org.springframework.kafka.core.KafkaTemplate;
//import org.springframework.kafka.listener.ConcurrentMessageListenerContainer;
//
///**
// * 记录kafka配置
// *
// */
//@Configuration
//@PropertySource(value = "classpath:config/spring-kafka.yml", factory = YamlPropertySourceFactory.class)// 用来指定配置文件的位置
//public class RecordKafkaConfig {
//
//    /**
//     * 读取第一个kafka配置
//     * Primary注解表示默认以这个为准
//     *
//     * @return 第一个kafka配置
//     */
//    @Primary
//    @ConfigurationProperties(prefix = "spring.kafka.record")
//    @Bean
//    public KafkaProperties recordKafkaProperties() {
//        return new KafkaProperties();
//    }
//
//    /**
//     * 构建第一个kafka的生产者发送template
//     *
//     * @param recordKafkaProperties 第一个kafka配置
//     * @return 第一个kafka的生产者发送template
//     */
//    @Primary
//    @Bean
//    public KafkaTemplate<String, String> recordKafkaTemplate(@Autowired @Qualifier("recordKafkaProperties") KafkaProperties recordKafkaProperties) {
//        return new KafkaTemplate<>(recordProducerFactory(recordKafkaProperties));
//    }
//
//    /**
//     * 构建第一个kafka的消费者监听容器工厂
//     *
//     * @param firstKafkaProperties 第一个kafka配置
//     * @return 第一个kafka的消费者监听容器工厂
//     */
//    @Bean
//    public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<Integer, String>>
//    recordKafkaListenerContainerFactory(@Autowired @Qualifier("recordKafkaProperties") KafkaProperties firstKafkaProperties) {
//        ConcurrentKafkaListenerContainerFactory<Integer, String> factory =
//                new ConcurrentKafkaListenerContainerFactory<>();
//        factory.setConsumerFactory(recordConsumerFactory(firstKafkaProperties));
//        return factory;
//    }
//
//    /**
//     * 新建第一个kafka的消费者工厂
//     *
//     * @param recordKafkaProperties 第一个kafka配置
//     * @return 第一个kafka的消费者工厂
//     */
//    private ConsumerFactory<? super Integer, ? super String> recordConsumerFactory(KafkaProperties recordKafkaProperties) {
//        return new DefaultKafkaConsumerFactory<>(recordKafkaProperties.buildConsumerProperties());
//    }
//
//    /**
//     * 新建第一个kafka的生产者工厂
//     *
//     * @param recordKafkaProperties 第一个kafka配置
//     * @return 第一个kafka的生产者工厂
//     */
//    private DefaultKafkaProducerFactory<String, String> recordProducerFactory(KafkaProperties recordKafkaProperties) {
//        return new DefaultKafkaProducerFactory<>(recordKafkaProperties.buildProducerProperties());
//    }
//}
